package com.dxf.chepter08

import scala.collection.mutable.ArrayBuffer

/**
 *  scala集合介绍:
 *    1 scala同时支持不可变集合(线程安全)和可变集合
 *    2 主要包:
 *        scala.collection.immutable
 *        scala.collection.mutable
 *   3 scala默认采用不可变集合.对于几乎所有的集合类,scala都同时提供了可变mutable 和不可变 immutable的版本
 *   4 scala集合有三类, 序列Seq ,集Set.映射Map,所有集合都扩展自Iterable特质,在Scala中集合有可变mutable 和
 *   不可变immutable两种类型
 *
 *
 *
 *
 *
 *   不可变集合 :
 *
 *                            SortedSet -- TreeSet
 *                            HashSet
 *                  --Set --- BitSet
 *                            ListSet
 *
 *                            SortedMap   -- TreeMap
 *      Iterable    --Map --- HashMap
 *                            ListMap
 *                                                     Vector
 *                  --Seq  --- IndexedSeq(索引序列) --  NumericRange
 *                                                     Array(数组)
 *                                                     String
 *                                                     Range
 *
 *                                                     List
*                             LinearSeq(线性序列)  --   Stream            有头有尾
 *                                                     Queue(队列)
 *                                                     Stack(栈)
 *
 *
 *  可变集合,比不可变集合范围更大
 *
 *
 * =============================================================
 *
 *   Array 定长数组
 *
 *   ArrayBuff 变长数组
 *
 *    var arr2 = ArrayBuffer[Int]()
 *    arr2.append(7)
 *    arr2(0)=7
 *
 *
 * =============================================
 *
 *
 *  T81_定长和变长数组转换
 *
 *================================================
 *
 *
 * 多维数组
 * var arr = Array.ofDim[Double](3,4)
 *  指 3个一维数组,每一维数组有4元素
 *  即 :
 *    3行 4列
 * 赋值
 *  arr(1)(1) =11.11
 *
 *  ===================================================
 *
 *   ArrayBuffer转 List
 *
 *    1 json转
 *    2 调用包转
 *
 *
 *
 *
 *
 */
object T83_ArrayBuffer转List_Java {


  def main(args: Array[String]): Unit = {
      var array= ArrayBuffer("1","2","3")
    //implicit 隐式函数,如  ArrayBuffer  转 List
    import scala.collection.JavaConversions.bufferAsJavaList
    val  javaArr = new ProcessBuilder(array)//为什么可以这样用,因为上门用到了隐式函数
    var arrList = javaArr.command()
    println(arrList,arrList.getClass)


    //java中的list 转 ArrayBuffer
    import scala.collection.JavaConversions.asScalaBuffer
    import scala.collection.mutable
    val scalaArr :mutable.Buffer[String] =arrList
    scalaArr.append("1")

    println(scalaArr)




  }



}

